1. Field of the Invention
Embodiments of the invention described herein pertain to the field of computer systems. More particularly, but not by way of limitation, one or more embodiments of the invention enable a schema modeler for generating an efficient database schema that is structurally and semantically correct and that provides rapid access to data.
2. Description of the Related Art
Schema modelers are generally monolithic applications that allow a database implementer to generate and modify entity relationship diagrams that represent the schema of the database. These applications do not however allow for the generation of efficient schemas to take advantage of the actual data that resides or will reside in a database. The efficiency of the database is left entirely to the experience level of the database designer at best. For example, once a schema has been generated, vast quantities of redundant data or inefficiently repetitive data may result based on the experience level of the implementer and the particular data that inhabits the database. Over time, the schema may be augmented by the database designer, or more likely a different database designer. The schema may be modified or patched in a simple manner to add additional fields. In this example, duplicative data may result that a separate lookup table would negate. Use of a different structure, although more work for the database designer during schema modification may save enormous amounts of memory and disk space. For example, sales prices for given quantities may be added over time in fields for a product table. When this occurs sparse data may result that makes for a very inefficient database. Although easy to add, each additional sparsely populated field taken as a whole makes for an inefficient schema.
Altering the schema of a working database is a dangerous proposition. One method to determine if a lookup table should be used for example, requires that a database be duplicated or a subset of that database be copied to another database server and modified. By modifying the schema and observing the size and performance changes that result, a database designer or database administrator may decide that a change in the basic architecture of the schema is warranted. This trial and error approach is time consuming and costly and relies entirely on the experience level of the database designer.
For at least the limitations described above there is a need for a schema modeler for generating an efficient database schema.